/*
 * 
 * 
 */

package steg.gui.unsteg;

import java.io.File;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import steg.steki.StegException;
import steg.steki.pm3.PlikMP3;
import steg.utils.MyFileFilter;

/**
 *
 * @author 
 */
public class JDialogUnstegMP3 extends JDialogUnsteg {


// ------------------------------- ZIENNE PRYWATNE -----------------------------
    //-- stałe
    //-- czy
    //-- zmienne
// ------------------------------- ZIENNE PUBLICZNE
    //-- czy
    //-- zmienne

// ------------------------------- KONSTRUKTORY
    public JDialogUnstegMP3(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initTilte("wyszukaj w MP3");
        initPlikIcon("mp364.png");
    }

// ******************************** PUBLICZNE **********************************
// *****************************************************************************
// ------------------------------- FUNKCJE KRYTYCZNE ---------------------------
    @Override
    protected void loadUnStegPlik() {

        // a. wczytaj plik
        JFileChooser chooser = new JFileChooser();
        MyFileFilter mff = new MyFileFilter();
        mff.setExtencion(".mp3");

        chooser.addChoosableFileFilter(mff);
        chooser.setCurrentDirectory(new File(PATH_LST_OPEN));

        int returnVal = chooser.showOpenDialog(this);
        if (returnVal != JFileChooser.APPROVE_OPTION)return;

            try {

                File plik = chooser.getSelectedFile();
                PATH_LST_OPEN = plik.getPath();


                //1 wykrycie typu pliku

                plikStegowany = new PlikMP3();
                plikStegowany.init(new File(PATH_LST_OPEN));
                this.setMetaDane(plikStegowany.getMetaDane());


            } catch (StegException ex) {
                raportError(ex,"mp3 niepoprawna");
                JOptionPane.showMessageDialog(this, ex.getStegMassage(),"Błąd steganograficzny!",
                        JOptionPane.ERROR_MESSAGE);
            } catch (IOException ex) {
                raportError(ex,"błąd wczytu mp3");
                JOptionPane.showMessageDialog(this, "Błąd wczytania pliku.","Błąd pliku!",
                        JOptionPane.ERROR_MESSAGE);
            } catch (Exception ex) {
                //error nie znany, lepiej wypłapywać wszystko, potem można jak co czeknąć co jest 5
                raportError(ex,"błąd przy próbie wczytu png");
                JOptionPane.showMessageDialog(this, "Błąd wczytania pliku.","Błąd!!!",
                        JOptionPane.ERROR_MESSAGE);
            }

    }

    @Override
    protected void unsteganuj() throws StegException, IOException {
        //do nic 
    }

    @Override
    protected void zakoncz() {

        // do nic

        //throw new UnsupportedOperationException("Not supported yet.");
    }
// ------------------------------- FUNKCJE DODATKOWE ---------------------------
    @Override
    protected void initStartOpcje() {
        super.setIsGZIP(true, true, true);
        super.setIsHaslo(true, true, false);
        super.setIsTag(true, true, true);
    }
// ------------------------------- FUNKCJE dziwne ------------------------------



// ******************************** PRYWATNE ***********************************
// *****************************************************************************
// ------------------------------- FUNKCJE KRYTYCZNE


// ------------------------------- FUNKCJE  POMOCNICZE CZY/SET -----------------


}